Skip to content

docs: add databases content#3018

Open
abnegate wants to merge 15 commits into
mainfrom
feat-dedicated-db
Open

docs: add databases content#3018
abnegate wants to merge 15 commits into
mainfrom
feat-dedicated-db

Conversation

@abnegate
Copy link
Copy Markdown
Member

@abnegate abnegate commented May 21, 2026

Summary

Content for databases

  • 11 new docs pages under products/databases/dedicated/: overview, specifications, connect, high-availability, backups, branches, extensions, pooler, sql-api, network, monitoring.
  • Announcement blog post with 8 FAQs (author: jake-barnby, category: announcement).
  • Changelog entry dated 2026-05-21 linking to both the blog post and the docs.
  • The new docs are wired into the existing databases sidebar with "New" badges, and a cross-link callout is added from the main databases overview.

Add the docs, blog post, and changelog entry for the dedicated databases
launch. Covers managed PostgreSQL, MySQL, MariaDB, and MongoDB engines on
Appwrite Cloud, with high availability, point-in-time recovery, branching,
extensions, a connection pooler, and a managed SQL API.

* 11 docs pages under products/databases/dedicated (overview, specifications,
  connect, high-availability, backups, branches, extensions, pooler, sql-api,
  network, monitoring) wired into the databases sidebar.
* Cross-link callout from the main databases overview to the new section.
* Hide the "new TablesDB API" banner on the dedicated routes since it's
  scoped to the document store.
* Announcement blog post with 8 FAQs.
* Changelog entry for 2026-05-21.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 21, 2026 03:11
@appwrite
Copy link
Copy Markdown

appwrite Bot commented May 21, 2026

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Ready Ready View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Sites auto-generate unique domains with the pattern https://randomstring.appwrite.network

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Launches the customer-facing documentation and announcement content for Appwrite Cloud Dedicated databases (managed PostgreSQL/MySQL/MariaDB/MongoDB), and wires the new docs section into the existing Databases documentation navigation.

Changes:

  • Adds a new Dedicated databases docs section (overview + 10 feature pages) under docs/products/databases/dedicated/.
  • Updates Databases docs landing + sidebar layout to surface Dedicated databases and hide the TablesDB “New API” banner on dedicated routes.
  • Adds an announcement blog post and a changelog entry linking to the blog + docs.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/routes/docs/products/databases/dedicated/+page.markdoc Adds Dedicated databases overview (engines, regions, feature cards, limits, billing).
src/routes/docs/products/databases/dedicated/specifications/+page.markdoc Adds specs/pricing, free tier caps, overage/add-ons, resize behavior guidance.
src/routes/docs/products/databases/dedicated/connect/+page.markdoc Documents credential retrieval, connecting via CLIs/drivers, password rotation, extra users.
src/routes/docs/products/databases/dedicated/high-availability/+page.markdoc Documents HA modes, enabling HA, auto/manual failover behavior, limits.
src/routes/docs/products/databases/dedicated/backups/+page.markdoc Documents backups, retention, PITR, restore/verify flows, encryption/storage targets.
src/routes/docs/products/databases/dedicated/branches/+page.markdoc Documents branching from snapshots + CI preview workflow example.
src/routes/docs/products/databases/dedicated/extensions/+page.markdoc Documents PostgreSQL extension management endpoints and limits.
src/routes/docs/products/databases/dedicated/pooler/+page.markdoc Documents per-DB pooler config, modes, read/write splitting, sizing guidance.
src/routes/docs/products/databases/dedicated/sql-api/+page.markdoc Documents SQL API enablement/config, execution, bindings, errors, audit behavior.
src/routes/docs/products/databases/dedicated/network/+page.markdoc Documents hostname/TLS/IP allowlist/connection limits + security guidance.
src/routes/docs/products/databases/dedicated/monitoring/+page.markdoc Documents metrics/usage/slow queries/explain/insights/audit/events endpoints.
src/routes/docs/products/databases/+page.markdoc Adds callout linking users to Dedicated databases from the document-store landing page.
src/routes/docs/products/databases/+layout.svelte Adds Dedicated databases section to the docs sidebar + hides TablesDB subtitle/banner on dedicated routes.
src/routes/blog/post/announcing-dedicated-databases/+page.markdoc Adds announcement post (with FAQs) for Dedicated databases launch.
src/routes/changelog/(entries)/2026-05-21.markdoc Adds changelog entry linking to announcement + docs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/routes/blog/post/announcing-dedicated-databases/+page.markdoc
Comment thread src/routes/changelog/(entries)/2026-05-21.markdoc
Comment thread src/routes/docs/products/databases/dedicated/+page.markdoc Outdated
Comment thread src/routes/docs/products/databases/dedicated/branches/+page.markdoc
Comment thread src/routes/docs/products/databases/dedicated/pooler/+page.markdoc
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 21, 2026

Greptile Summary

This PR adds 11 new documentation pages for the Dedicated databases product, a blog announcement post, and a changelog entry, wiring everything into the existing sidebar with "New" badges.

  • The bulk of the content — engine overview, specifications, connect guides, HA, backups/PITR, branches, extensions, pooler, SQL API, network, and monitoring — is well-written and internally consistent across the multi-language SDK examples.
  • Several issues flagged in earlier review rounds remain open in the current head: the missing cover image, the Frankfurt region hardcode in the branches CI YAML, the sidecar error code leaking an internal term, the Go nil-pointer panic in the connect snippet, missing Content-Type headers on two curl snippets, stray commas in the pooler MongoDB table row, the unexplained <DATABASE_INTERNAL_ID> placeholder in the monitoring page, and the "pick a region" / "no per-database region selector" contradiction between the changelog and the blog post FAQ.
  • Two new gaps surfaced in this pass: the extensions page leaves create/delete behaviour on non-PostgreSQL engines unspecified, and the specifications "Burst patterns" tip references a storage "autoscaling" feature that is not documented anywhere else in the new docs."

Confidence Score: 4/5

The new docs pages are mostly safe to publish, but several concrete defects in code examples remain unaddressed from earlier rounds — notably the Go nil-pointer panic users will hit when copying the connect snippet and the unexplained DATABASE_INTERNAL_ID placeholder that makes the monitoring curl examples non-functional as written.

The Go snippet in connect/+page.markdoc discards the error from pgx.Connect and then unconditionally defers conn.Close on a potentially-nil receiver, which panics on any connection failure. The monitoring page uses two different ID placeholders without explaining what the internal ID is or how to obtain it, leaving both curl snippets non-functional. These were flagged in earlier rounds and are still present in the current head.

src/routes/docs/products/databases/dedicated/connect/+page.markdoc (Go pgx nil-pointer panic), src/routes/docs/products/databases/dedicated/monitoring/+page.markdoc (DATABASE_INTERNAL_ID unexplained), src/routes/docs/products/databases/dedicated/branches/+page.markdoc (Frankfurt region hardcode), src/routes/changelog/(entries)/2026-05-21.markdoc (region-selector wording contradicts blog post FAQ)

Important Files Changed

Filename Overview
src/routes/blog/post/announcing-dedicated-databases/+page.markdoc New announcement blog post with 8 FAQs; cover image still missing; FAQ correctly clarifies no per-DB region selector
src/routes/changelog/(entries)/2026-05-21.markdoc Changelog entry referencing the missing cover image; 'pick a region' wording directly contradicts the blog post FAQ in the same PR (previously flagged)
src/routes/docs/products/databases/+layout.svelte Adds 11 sidebar entries for Dedicated databases with isNewUntil badges, and adds 'dedicated' to hideSubtitleRoutes; logic is correct
src/routes/docs/products/databases/+page.markdoc Product comparison table and cross-links added; clean and consistent with the rest of the PR
src/routes/docs/products/databases/dedicated/+page.markdoc Overview page with engine table and feature summary; content is accurate and internally consistent
src/routes/docs/products/databases/dedicated/specifications/+page.markdoc Pricing and connection-limit tables look correct; the 'Burst patterns' tip references 'autoscaling' without linking to or describing that feature anywhere in the new docs
src/routes/docs/products/databases/dedicated/connect/+page.markdoc Go snippet discards the error from pgx.Connect and then defers conn.Close on a potentially-nil conn — panics on connection failure (previously flagged)
src/routes/docs/products/databases/dedicated/high-availability/+page.markdoc HA enable/disable, failover, sync modes, and cross-region sections are well documented; code snippets across all SDKs are consistent
src/routes/docs/products/databases/dedicated/backups/+page.markdoc Comprehensive backup policy, PITR, encryption, storage target, and restore docs; curl snippets that carry a body include Content-Type headers consistently
src/routes/docs/products/databases/dedicated/branches/+page.markdoc CI workflow example hardcodes fra.cloud.appwrite.io in both branch-create and branch-delete curl calls (previously flagged)
src/routes/docs/products/databases/dedicated/extensions/+page.markdoc Extensions docs correctly scope to PostgreSQL only; intro states non-PG endpoints return an empty list but leaves create/delete behaviour on non-PG engines undocumented
src/routes/docs/products/databases/dedicated/pooler/+page.markdoc Pooler docs cover pool mode, read/write splitting, and sizing well; MongoDB row has stray comma characters in Pooler and Port cells (previously flagged)
src/routes/docs/products/databases/dedicated/sql-api/+page.markdoc SQL API enable, execute, and error reference docs are solid; dedicated_database_sql_api_sidecar_unavailable error code leaks internal infrastructure term (previously flagged)
src/routes/docs/products/databases/dedicated/network/+page.markdoc Hostname format, TLS table, IP allowlist, and max-connections docs are clean and consistent across all SDK snippets
src/routes/docs/products/databases/dedicated/monitoring/+page.markdoc Two curl examples use DATABASE_INTERNAL_ID inside metric names alongside DATABASE_ID without explaining what the internal ID is or how to get it (previously flagged)

Reviews (11): Last reviewed commit: "docs: remove dedicated database legacy u..." | Re-trigger Greptile

Comment thread src/routes/blog/post/announcing-dedicated-databases/+page.markdoc
Comment thread src/routes/docs/products/databases/dedicated/branches/+page.markdoc
Comment thread src/routes/docs/products/databases/dedicated/sql-api/+page.markdoc
…onnect page

`nodejs` is not a registered highlight.js language alias — only `server-nodejs`
(which maps to `js`) works. The SSR pass blew up with "Unknown language: nodejs"
on every request, so the page 500'd and the sidebar link looked like it did
nothing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread src/routes/docs/products/databases/dedicated/connect/+page.markdoc
Switch '125m CPU' / '125 mCPU' / '125m – 16000m' to '0.125 vCPU' /
'0.125 – 16 vCPU'. mCPU is a Kubernetes/internal unit; users think in
fractional vCPUs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread src/routes/docs/products/databases/dedicated/branches/+page.markdoc
50% per replica is not sustainable at the higher specifications — at $860/mo
the underlying infrastructure cost per replica is close to the full spec
price. Raising to 75% matches the cross-region replica rate and preserves
margin on Business+ tiers.

Applied to cloud config and tests in a separate change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread src/routes/docs/products/databases/dedicated/pooler/+page.markdoc
abnegate and others added 4 commits May 21, 2026 15:54
All replica-style add-ons (HA replicas, cross-region replicas, and the
cross-region standby) now bill at 75% of the underlying specification.
The standby is just a cross-region replica configured for automatic
failover, so they price identically.

Removes the separate "Cross-region standby" row from the add-on table
and adds a one-liner explaining that the standby is a special-case
cross-region replica.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The endpoint mutates an existing resource (the primary user's password),
which is what PATCH is for. POST was the wrong verb. Updated the docs
example to use PATCH.

The same change ships in cloud (endpoint, e2e tests, internal docs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the bare CURL examples in the Connect page with multicode blocks
covering all server SDKs (Node.js, Deno, PHP, Python, Ruby, .NET, Dart,
Kotlin, Swift, Go, Rust) plus CURL as the last entry, matching the
pattern used elsewhere in the docs and blog posts. SDK calls go through
the Compute service since the endpoint lives at /v1/compute/...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lover steps

- Replace every em-dash with a comma in the new docs and blog post (12 files).
- 'Appwrite's internal regional network' becomes 'the Appwrite network'.
- Reduce the automatic-failover numbered list to a two-sentence summary.
  The engine-specific promote commands and per-step accounting belonged
  in the internal docs, not the user-facing page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread src/routes/docs/products/databases/dedicated/pooler/+page.markdoc Outdated
abnegate and others added 2 commits May 21, 2026 16:17
Convert every API curl example in the dedicated databases docs to a
{% multicode %} block. Server SDKs (Node.js, Deno, PHP, Python, Ruby,
.NET, Dart, Kotlin, Swift, Go, Rust) come first, with curl as the last
tab. ~32 endpoints converted across high-availability, backups,
branches, extensions, pooler, sql-api, network, and monitoring pages.

Mark cross-region failover and cross-region replicas as 'coming soon'
in the HA and specifications pages. Replace 'quiesce' on the branches
page with 'pause writes', since the term reads as jargon to anyone who
isn't a DB engineer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The branches page had two adjacent identical {% multicode %} blocks
calling listDatabaseBranches. Drop the one in the 'Create a branch'
section in favour of a sentence that links to the canonical 'List
branches' section below.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@abnegate abnegate changed the title docs: add dedicated databases launch content docs: add databases content May 21, 2026
abnegate and others added 3 commits May 21, 2026 16:56
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
cover: /images/blog/announcing-dedicated-databases/cover.avif
---

Appwrite Cloud now supports [**Dedicated databases**](/docs/products/databases/dedicated), managed PostgreSQL, MySQL, MariaDB, and MongoDB engines running next to your existing Functions, Sites, and Storage. Pick an engine (Postgres 17/18, MySQL 8.0/8.4, MariaDB 10.11/11.4, MongoDB 7.0/8.0), pick a region (Frankfurt, New York, San Francisco, Singapore, Sydney, Toronto), pick a specification from `s-1vcpu-1gb` at $13/mo to `s-8vcpu-64gb` at $699/mo, and connect with `psql`, `mysql`, `mongosh`, or any standard driver.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 "Pick a region" contradicts the blog post FAQ

The changelog entry tells readers they can "pick a region (Frankfurt, New York, San Francisco, Singapore, Sydney, Toronto)" when creating a dedicated database. The blog post FAQ in the same PR explicitly states the opposite: "there's no per-database region selector" and "A dedicated database lives in the same region as the project that owns it." A user who reads the changelog first will arrive at the Console expecting a region dropdown and be confused when one doesn't exist — or will open a support ticket asking why they can't move the database to a different region from their project. One of the two needs to align with the actual product behaviour.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants